Since GtkATContexts are now lazily realized, we need to go through the
GtkAccessible's implementation to access the :accessible-role property,
in case there are fallbacks.
GtkAccessibleRole
gtk_accessible_get_accessible_role (GtkAccessible *self)
{
+ GtkAccessibleRole role;
+
g_return_val_if_fail (GTK_IS_ACCESSIBLE (self), GTK_ACCESSIBLE_ROLE_NONE);
GtkATContext *context = gtk_accessible_get_at_context (self);
- if (context == NULL)
- return GTK_ACCESSIBLE_ROLE_NONE;
+ if (context != NULL && gtk_at_context_is_realized (context))
+ return gtk_at_context_get_accessible_role (context);
+
+ g_object_get (G_OBJECT (self), "accessible-role", &role, NULL);
- return gtk_at_context_get_accessible_role (context);
+ return role;
}
/**
gtk_test_accessible_has_role (GtkAccessible *accessible,
GtkAccessibleRole role)
{
- GtkATContext *context;
-
g_return_val_if_fail (GTK_IS_ACCESSIBLE (accessible), FALSE);
- context = gtk_accessible_get_at_context (accessible);
- if (context == NULL)
- return FALSE;
-
- return gtk_at_context_get_accessible_role (context) == role;
+ return gtk_accessible_get_accessible_role (accessible) == role;
}
gboolean